// 数据类型
public class Demo02DataType {
    public static void main(String[] args) {
        /*
         * 基本数据类型：
         * 整数类型：byte, int, short, long
         * 浮点数类型：float, double
         * 字符类型：char
         * boolean类型：boolean
         */
        int n = 100; // 定义变量n，同时赋值为100
        System.out.println("n = " + n); // 打印n的值 100

        n = 200; // 变量n赋值为200
        System.out.println("n = " + n); // 打印n的值 200

        int x = n; // 变量x赋值为n（n的值为200，因此赋值后x的值也是200）
        System.out.println("x = " + x); // 打印x的值 200

        x = x + 100; // 变量x赋值为x+100（x的值为200，因此赋值后x的值是200+100=300）
        System.out.println("x = " + x); // 打印x的值 300
        System.out.println("n = " + n); // 再次打印n的值，n应该是200还是300？200

        /*
         * 引用类型
         */
        String text = "这是一个文本";
        System.out.println("text = " + text);
        /*
         * 常量
         * 定义常量的时候，如果加上final，这个变量就变成了常量
         */
        final double PI = 3.14;
        double r = 10;
        double area = PI * r * r;
        System.out.println("area = " + area);
        /*
         * var关键字
         * StringBuilder sb = new StringBuilder() 等同于 var sb = new StringBuilder();
         */

        /*
         * 总结
         * Java提供了两种变量类型：基本类型和引用类型
         * 
         * 基本类型包括整型，浮点型，布尔型，字符型。
         * 
         * 变量可重新赋值，等号是赋值语句，不是数学意义的等号。
         * 
         * 常量在初始化后不可重新赋值，使用常量便于理解程序意图。
         */
    }
}